// import * as escpos from 'escpos';
import { WinUSB } from './winUsbAdapter';

// export function getAdapter() {
//     let platform = os.platform();
//     if (platform == 'darwin') {
//         //Mac os
//         return escpos.USB;

//     }
//     else if (platform == 'win32') {
//         // windows
//         let t = require('./winUsbService');
//         return t.WinUSBService;
//     }
// }

// export function getUSBPrinterInstance(pid = "-1", vid = "-1") {
//     let platform = os.platform();
//     let device;
//     if (platform == 'darwin') {
//         //Mac os
//         if (pid != '-1' && vid != '-1') {
//             device = new escpos.USB(vid, pid);
//         }
//         else {
//             device = new escpos.USB();
//         }

//     }
//     else if (platform == 'win32') {
//         // windows
//         let t = require('./winUsbService');
//         device = new t.WinUSBService(pid, vid);
//     }
//     return {
//         device,
//         printer: new escpos.Printer(device)
//     }
// }

export async function getUSBPrinters() {
    let usb = new WinUSB(-1, -1);
    return usb.findPrinter();
}

// export function getNetworkPrinter(ip: string) {
//     const device = new escpos.Network(ip);
//     return {
//         device,
//         printer: new escpos.Printer(device)
//     }
// }

// export function getSerialportPrinter(comName) {
//     let t = require('./serialAdapter');
//     let device = new t.Serial(comName);
//     return {
//         device,
//         printer: new escpos.Printer(device)
//     }
// }

// export function getLptPortPrinter(lptName: string) {
//     try {
//         let t = require('./lptAdapter');
//         let device = new t.LPT(lptName);
//         return {
//             device,
//             printer: new escpos.Printer(device)
//         }
//     } catch (error) {
//         console.error("getLptPortPrinter", error);
//         throw "LPT 打印机连接失败，请重启POS程序！";
//     }
// }

// export function getESCPOSImage(url: string) {
//     return new Promise((resolve, reject) => {
//         escpos.Image.load(url, (image) => {
//             resolve(image);
//         });
//     })
// }